/*
 * $QNXLicenseC: 
 * Copyright 2008, 2009, QNX Software Systems.  
 *  
 * Licensed under the Apache License, Version 2.0 (the "License"). You  
 * may not reproduce, modify or distribute this software except in  
 * compliance with the License. You may obtain a copy of the License  
 * at: http://www.apache.org/licenses/LICENSE-2.0  
 *  
 * Unless required by applicable law or agreed to in writing, software  
 * distributed under the License is distributed on an "AS IS" basis,  
 * WITHOUT WARRANTIES OF ANY KIND, either express or implied. 
 * 
 * This file may contain contributions from others, either as  
 * contributors under the License or as licensors under other terms.   
 * Please review this entire file for other proprietary rights or license  
 * notices, as well as the QNX Development Suite License Guide at  
 * http://licensing.qnx.com/license-guide/ for other information. 
 * $ 
 */




#include "proto.h"

void
at91sam9xx_fini(void *hdl)
{
	at91sam9xx_dev_t  *dev = hdl;

	/* Reset I2C module */
	out32(dev->regbase + AT91SAM9XX_I2C_CTRREG_OFF, CTRREG_SWRST);

	delay (10);

	/* Disable interrupts */
	out32(dev->regbase + AT91SAM9XX_I2C_IDREG_OFF, 0xFFFFFFFF);

	/* Disable master mode */
	out32(dev->regbase + AT91SAM9XX_I2C_CTRREG_OFF,CTRREG_MSDIS);

	/* Detach interrupt */
	InterruptDetach(dev->iid);

	/* Release memory */
	free (dev);
}
